home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 51 / Amiga Format CD51 (2000-03-10)(Future Publishing)(GB)[!][issue 2000-04].iso / -in_the_mag- / banging_the_metal / qdos / qdos4amiga2 / romsrc / sys / procs4_asm < prev    next >
Text File  |  2000-01-03  |  2KB  |  96 lines

  1. */beginfile PROCS4_asm
  2. ; --------------------------------------------------------------
  3. ; PROCS4_asm - BASIC bits
  4. ;        - last modified 27/08/95
  5. ; QDOS-Amiga sources by Rainer Kowallik
  6. ;    ...some changes by Mark J Swift
  7. ; --------------------------------------------------------------
  8. L06788:
  9. BAS_ADATe:
  10.     JSR    GET_INT4(PC)    ;*/undomodify BSR GET_INT4
  11.     BNE.S    L067AE
  12.     ADDQ.L    #4,BV_RIP(A6)    ;arith stack
  13.     MOVE.L    0(A6,A1.L),D1
  14.     MOVEQ    #$15,D0        ; MT.ACLCK adjusts the clock
  15.                 ; (D1 sec.)
  16.     TRAP    #1
  17.     BRA.S    L0680C
  18. BAS_SDATe:
  19.     JSR    CA_GTLIN(PC)    ;*/undomodify BSR CA_GTLIN
  20.     BNE.S    L0680E
  21.     MOVEQ    #-15,D0
  22.     LSL.L    #2,D3
  23.     ADD.L    D3,BV_RIP(A6)    ;arith stack
  24.     LSR.L    #2,D3
  25.     SUBQ.W    #6,D3
  26. L067AE    BNE.S    L0680E
  27.     MOVE.L    0(A6,A1.L),D0
  28.     SUBI.L    #$7A9,D0
  29.     MOVE.L    D0,D1
  30.     MULU    #$016D,D1
  31.     MOVE.L    4(A6,A1.L),D2
  32.     DIVU    #4,D0
  33.     SWAP    D0
  34.     CMPI.W    #3,D0
  35.     BNE.S    L067D8
  36.     CMPI.W    #2,D2
  37.     BLE.S    L067D8
  38.     ADDQ.L    #1,D1
  39. L067D8    CLR.W    D0
  40.     SWAP    D0
  41.     ADD.L    D0,D1
  42.     SUBQ.L    #1,D2
  43.     ASL.W    #1,D2
  44.     LEA    DAY_TABL(PC,D2.W),A2 ; table of days
  45.     CLR.L    D0
  46.     MOVE.W    (A2),D0
  47.     ADD.L    D0,D1
  48.     ADD.L    8(A6,A1.L),D1
  49.     SUBQ.W    #1,D1
  50.     MOVEQ    #$18,D0
  51.     BSR.S    L0682A
  52.     ADD.L    $0C(A6,A1.L),D1
  53.     MOVEQ    #$3C,D0
  54.     BSR.S    L0682A
  55.     ADD.L    $10(A6,A1.L),D1
  56.     BSR.S    L0682A
  57.     ADD.L    $14(A6,A1.L),D1
  58.     MOVEQ    #$14,D0        ; MT.SCLCK sets the clock
  59.                 ; (D1 sec.)
  60.     TRAP    #1
  61. L0680C    MOVEQ    #0,D0
  62. L0680E    TST.L    D0
  63.     RTS
  64. DAY_TABL ; table of days
  65.     DC.L    $0000001F,$003B005A,$00780097,$00B500D4
  66.     DC.L    $00F30111,$0130014E
  67. L0682A    ; multiply integer long in D0 with integer long in D1
  68.     BSR.S    L0684E
  69.     MOVE.L    D4,D3
  70.     SWAP    D0
  71.     SWAP    D1
  72.     BSR.S    L0684E
  73.     MOVE.L    D4,D2
  74.     SWAP    D0
  75.     SWAP    D3
  76.     BSR.S    L0684E
  77.     BSR.S    L06854
  78.     SWAP    D0
  79.     SWAP    D1
  80.     BSR.S    L0684E
  81.     BSR.S    L06854
  82.     SWAP    D3
  83.     SWAP    D0
  84.     MOVE.L    D3,D1
  85.     RTS
  86. L0684E    MOVE.L    D0,D4
  87.     MULU    D1,D4
  88.     RTS
  89. L06854    ADD.W    D4,D3
  90.     CLR.W    D4
  91.     SWAP    D4
  92.     ADDX.L    D4,D2
  93.     RTS
  94. ; --------------------------------------------------------------
  95. ;*/endfile
  96.